﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;

namespace ReflectionIT.Silverlight.ReportLibrary {

    public class ReportHeader : Control {

        public ReportHeader() {
            this.DefaultStyleKey = typeof(ReportHeader);
        }

        #region Title Dependency Property

        /// <summary> 
        /// Get or Sets the Title dependency property.  
        /// </summary> 
        public string Title {
            get { return (string)GetValue(TitleProperty); }
            set { SetValue(TitleProperty, value); }
        }

        /// <summary> 
        /// Identifies the Title dependency property. This enables animation, styling, binding, etc...
        /// </summary> 
        public static readonly DependencyProperty TitleProperty =
            DependencyProperty.Register("Title",
                                        typeof(string),
                                        typeof(ReportHeader),
                                        new PropertyMetadata(string.Empty, null));


        #endregion Title Dependency Property


        #region SubTitle Dependency Property

        /// <summary> 
        /// Get or Sets the SubTitle dependency property.  
        /// </summary> 
        public string SubTitle {
            get { return (string)GetValue(SubTitleProperty); }
            set { SetValue(SubTitleProperty, value); }
        }

        /// <summary> 
        /// Identifies the SubTitle dependency property. This enables animation, styling, binding, etc...
        /// </summary> 
        public static readonly DependencyProperty SubTitleProperty =
            DependencyProperty.Register("SubTitle",
                                        typeof(string),
                                        typeof(ReportHeader),
                                        new PropertyMetadata(string.Empty, null));

        #endregion SubTitle Dependency Property


        #region DateValue Dependency Property

        /// <summary> 
        /// Get or Sets the Date dependency property.  
        /// </summary> 
        public DateTime DateValue {
            get { return (DateTime)GetValue(DateProperty); }
            set { SetValue(DateProperty, value); }
        }

        /// <summary> 
        /// Identifies the Date dependency property. This enables animation, styling, binding, etc...
        /// </summary> 
        public static readonly DependencyProperty DateProperty =
            DependencyProperty.Register("DateValue",
                                        typeof(DateTime),
                                        typeof(ReportHeader),
                                        new PropertyMetadata(DateTime.Today, null));

        #endregion DateValue Dependency Property



        #region DateText Dependency Property

        /// <summary> 
        /// Get or Sets the DateText dependency property.  
        /// </summary> 
        public string DateText {
            get { return (string)GetValue(DateTextProperty); }
            set { SetValue(DateTextProperty, value); }
        }

        /// <summary> 
        /// Identifies the DateText dependency property. This enables animation, styling, binding, etc...
        /// </summary> 
        public static readonly DependencyProperty DateTextProperty =
            DependencyProperty.Register("DateText",
                                        typeof(string),
                                        typeof(ReportHeader),
                                        new PropertyMetadata("Date:", null));

        #endregion DateText Dependency Property


        #region PageValue Dependency Property

        /// <summary> 
        /// Get or Sets the PageValue dependency property.  
        /// </summary> 
        public int PageValue {
            get { return (int)GetValue(PageValueProperty); }
            set { SetValue(PageValueProperty, value); }
        }

        /// <summary> 
        /// Identifies the PageValue dependency property. This enables animation, styling, binding, etc...
        /// </summary> 
        public static readonly DependencyProperty PageValueProperty =
            DependencyProperty.Register("PageValue",
                                        typeof(int),
                                        typeof(ReportHeader),
                                        new PropertyMetadata(0, null));

        #endregion PageValue Dependency Property


        #region PageText Dependency Property

        /// <summary> 
        /// Get or Sets the PageText dependency property.  
        /// </summary> 
        public string PageText {
            get { return (string)GetValue(PageTextProperty); }
            set { SetValue(PageTextProperty, value); }
        }

        /// <summary> 
        /// Identifies the PageText dependency property. This enables animation, styling, binding, etc...
        /// </summary> 
        public static readonly DependencyProperty PageTextProperty =
            DependencyProperty.Register("PageText",
                                        typeof(string),
                                        typeof(ReportHeader),
                                        new PropertyMetadata("Page:", null));

        #endregion PageText Dependency Property
        

    }
}
